Controllers, Views, এবং Models এর বেসিক ধারণা

Web Development - এক্সটিজেএস (ExtJS) - ExtJS এর বেসিক কনফিগারেশন |

ExtJS একটি MVC (Model-View-Controller) আর্কিটেকচার অনুসরণ করে, যেখানে Controllers, Views, এবং Models একে অপরের সাথে কাজ করে অ্যাপ্লিকেশনের কার্যকারিতা এবং ইউজার ইন্টারফেস তৈরি করতে। এই প্রতিটি উপাদান (Controllers, Views, এবং Models) অ্যাপ্লিকেশনের পৃথক অংশ হিসেবে কাজ করে এবং অ্যাপ্লিকেশনকে মডুলার, স্কেলেবল এবং সহজে রক্ষণাবেক্ষণযোগ্য করে তোলে।


১. Model (মডেল)

Model অ্যাপ্লিকেশনের ডেটার কাঠামো এবং সেই ডেটার সাথে সম্পর্কিত লজিক সংরক্ষণ করে। এটি ডেটার ভ্যালিডেশন, ডেটা ফিল্ড, এবং ডেটা রিড বা রাইটের জন্য ব্যবহৃত হয়। মডেল সাধারণত সার্ভার থেকে ডেটা লোড, আপডেট এবং সংরক্ষণ করার জন্য স্টোর এবং প্রক্সির সাথে কাজ করে।

মডেলের মূল কাজ:

  • ডেটার কাঠামো নির্ধারণ করা।
  • ডেটার ভ্যালিডেশন এবং কনভার্সন পরিচালনা করা।
  • ডেটা থেকে প্রয়োজনীয় মান গ্রহণ করা।

মডেল উদাহরণ:

Ext.define('MyApp.model.User', {
    extend: 'Ext.data.Model',
    fields: [
        { name: 'id', type: 'int' },
        { name: 'name', type: 'string' },
        { name: 'email', type: 'string' }
    ],
    validations: [
        { type: 'length', field: 'name', min: 3 }
    ]
});

এখানে, User মডেলটি একটি id, name, এবং email ফিল্ড ধারণ করছে, এবং name ফিল্ডের জন্য একটি ভ্যালিডেশন দেওয়া হয়েছে যা ৩টির কম দৈর্ঘ্যের নাম গ্রহণ করবে না।


২. View (ভিউ)

View অ্যাপ্লিকেশনের ইউজার ইন্টারফেস (UI) উপস্থাপন করে। এটি গ্রিড, ফর্ম, প্যানেল, ট্যাব ইত্যাদি UI কম্পোনেন্ট তৈরি করে, যা ব্যবহারকারীদের সঙ্গে ইন্টারঅ্যাকশন করার জন্য ব্যবহৃত হয়। ভিউয়ের প্রধান কাজ হলো ডেটাকে ভিজ্যুয়ালাইজ করা এবং তা ইউজারকে প্রদর্শন করা।

ভিউয়ের মূল কাজ:

  • UI উপাদান তৈরি করা।
  • ব্যবহারকারী ইন্টারঅ্যাকশনের জন্য কম্পোনেন্ট প্রদর্শন করা।
  • মডেল থেকে ডেটা গ্রহণ করে সেটি ইউজার ইন্টারফেসে প্রদর্শন করা।

ভিউ উদাহরণ:

Ext.define('MyApp.view.UserGrid', {
    extend: 'Ext.grid.Panel',
    xtype: 'usergrid',
    title: 'User List',
    store: {
        model: 'MyApp.model.User',
        autoLoad: true
    },
    columns: [
        { text: 'ID', dataIndex: 'id', flex: 1 },
        { text: 'Name', dataIndex: 'name', flex: 2 },
        { text: 'Email', dataIndex: 'email', flex: 3 }
    ]
});

এখানে, UserGrid একটি গ্রিড প্যানেল, যা User মডেল ব্যবহার করে ডেটা প্রদর্শন করে। এখানে store কনফিগারেশন মডেলের সাথে যুক্ত এবং columns কম্পোনেন্টে ডেটা প্রদর্শিত হচ্ছে।


৩. Controller (কন্ট্রোলার)

Controller ভিউ এবং মডেলের মধ্যে সমন্বয় ঘটানোর জন্য ব্যবহৃত হয়। এটি ইউজার ইন্টারঅ্যাকশনের ভিত্তিতে অ্যাপ্লিকেশনের লজিক পরিচালনা করে। কন্ট্রোলার ইউজারের ইভেন্ট (যেমন, ক্লিক, সাবমিট, হোভার) অনুযায়ী ভিউ এবং মডেলের মধ্যে যোগাযোগ স্থাপন করে।

কন্ট্রোলারের মূল কাজ:

  • ইউজারের ইভেন্ট (যেমন ক্লিক, সাবমিট) হ্যান্ডল করা।
  • মডেল থেকে ডেটা নিয়ে তা ভিউতে প্রদর্শন করা।
  • ভিউ থেকে ইউজার ইন্টারঅ্যাকশন হ্যান্ডল করা এবং মডেল বা স্টোর আপডেট করা।

কন্ট্রোলার উদাহরণ:

Ext.define('MyApp.controller.UserController', {
    extend: 'Ext.app.Controller',
    init: function() {
        this.control({
            'usergrid': {
                itemclick: this.onUserClick
            }
        });
    },

    onUserClick: function(grid, record) {
        Ext.Msg.alert('User Selected', 'Name: ' + record.get('name'));
    }
});

এখানে, UserController কন্ট্রোলারটি usergrid ভিউতে itemclick ইভেন্ট হ্যান্ডল করছে। ইউজার যখন গ্রিডের একটি রেকর্ড ক্লিক করবে, তখন একটি আলার্ম বার্তা প্রদর্শিত হবে যার মধ্যে ক্লিক করা ইউজারের নাম থাকবে।


MVC আর্কিটেকচারে Controllers, Views, এবং Models এর কাজের সম্পর্ক

  1. Model: ডেটার কাঠামো এবং ম্যানিপুলেশন করে। মডেল সাধারণত স্টোর বা প্রক্সির মাধ্যমে ডেটার সাথে ইন্টারঅ্যাক্ট করে।
  2. View: UI তৈরি করে এবং মডেল থেকে ডেটা নিয়ে সেটি ব্যবহারকারীর কাছে প্রদর্শন করে। ভিউ কেবল ডেটা উপস্থাপন করে, কিন্তু কোনো লজিক থাকে না।
  3. Controller: ভিউ এবং মডেলের মধ্যে সমন্বয় ঘটায় এবং ব্যবহারকারীর ইন্টারঅ্যাকশনের মাধ্যমে অ্যাপ্লিকেশনের লজিক পরিচালনা করে।

এই তিনটি উপাদান একসাথে কাজ করে ExtJS অ্যাপ্লিকেশন তৈরি করতে যা সহজেই মডুলার এবং রক্ষণাবেক্ষণযোগ্য। MVC আর্কিটেকচার ব্যবহার করে অ্যাপ্লিকেশন ডেভেলপমেন্টের সময় কোড পরিষ্কার থাকে এবং ফিচার অ্যাড বা পরিবর্তন সহজ হয়।

Content added By
Promotion